


package beans;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.Remote;

import utils.CCOrdenDeCompra;
import utils.CCRemito;
import utils.remito;
import vo.CCSolicitudCotizacionOperadorVO;
import vo.CCSolicitudCotizacionParentVO;
import ws.SolicitudCotizacionResponse;
import entidades.Cliente;
import entidades.Factura;
import entidades.Pago;
import entidades.Remito;
import entidades.ResumenCuenta;
import entidades.ordenCompra;
import entidades.ordenCompraItem;

@Remote
public interface Facade {
	public void crearCliente(Cliente c);
	
	public void modificarCliente(Cliente c);
	
	public void eliminarCliente(Cliente c);
	
	public ArrayList <Cliente> getListaClientes();
	
	public Cliente getClienteConCotizaciones(Cliente c);
	
	/*
	 * Cotizaciones
	 */
	
	
	public CCSolicitudCotizacionOperadorVO cotizarRodamientos(CCSolicitudCotizacionOperadorVO cotizacion);
	
	public boolean aceptarCotizacion(CCSolicitudCotizacionParentVO cotizacionCPR);
	
	public void enviarCotizacionAlCliente(List <SolicitudCotizacionResponse> cotizacionAceptada);
	
	
	/*
	 * Compras
	 */
	
	public void enviarOrdenDeCompra(CCOrdenDeCompra oc,Cliente c);
	
	public void procesarRemito(CCRemito remito);
	public ordenCompra obtenerOrdenCompra(ordenCompra c);
	
	/*
	 * Facturas
	 */
	
	public ArrayList<Factura> getFacturasCliente(Cliente c);
	
	public ArrayList<Pago>getPagosCLiente(Cliente c);
	
	public ArrayList<ordenCompraItem>getOperacionesPendientes(Cliente c);
	
	public void generarFactura(Remito r);
	
	public void persistirFactura(Factura f);

	public void enviarFactura(Factura f);
	
	/*
	 * Resumen de cuenta del cliente
	 * 
	 */
	
	public ResumenCuenta getResumenCuenta(Cliente c);
	
	public float recibirPago(int idCliente, float Monto);
	
	public Cliente getCliente(int pId);
}
